package tenth.泛型方法;

/**
 * 在前面 所有的泛型操作都是把整个类泛型化了但是同样也可以在类中定义泛型方法
 * 泛型方法的定义和其所在的类是不是泛型类没有任何关系。
 *
 * 泛型方法的简单定义格式：
 * [访问权限] <泛型标识> 泛型标识 方法名称([泛型标识 参数名称])
 */

//在泛型方法中可以定义泛型参数，此时参数的类型就是传入数据的类型。
  class Demo{
      public <T> T fun(T t){
          return t;
      }
}
public class 定义一个泛型方法 {
    public static void main(String[] args) {
        Demo demo = new Demo();
        String name = demo.fun("张三");
        Integer age = demo.fun(888);
        System.out.println("姓名："+name+",年龄："+age);
    }
}
/**
 * 上面程序中的fun()方法是将接收的参数直接返回，而且因为在方法接收参数中使用了泛型操作，所以此方法可以接收任意类型的参数，
 * 而且方法的返回值类型由泛型指定；
 */
/*
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=60984:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 tenth.泛型方法.定义一个泛型方法
姓名：张三,年龄：888

Process finished with exit code 0

 */